// PluginStruct.h
#ifndef PLUGINSTRUCT_H
#define PLUGINSTRUCT_H
#include <QString>
#include <QStringList>
#include <QJsonObject>

// 插件元信息结构体，功能插件用
struct FunctionPluginInfo
{
    QString id;
    QString name;
    QString version;
    QString description;
    // 可扩展：依赖列表、描述等
};

// 插件元信息结构体，UI插件用
struct UIPluginInfo
{
    QString id;
    QString name;
    QString version;
    QString iconPath;
    QString description;
    QStringList requiredFunctionPlugins; // 依赖功能插件ID列表
};

enum class MessageType {
    GeneralMessage, // 一般提示、通知
    StatusReport,   // 状态回传（比如“设备已就绪”、“采集完成”等）
    DataPayload     // 主要是数据消息（如图像、参数、计算结果等）
};

struct PluginInfo
{
    QString senderId;    // 谁发出的事件
    QString eventName;   // 事件名（用来区分事件类型）
    MessageType type;    // 消息类型
    QJsonObject payload; // 事件的主体内容（JSON 格式）
};

#endif // PLUGINSTRUCT_H
